#ifndef __VFS_H
#define __VFS_H

#include <vfs/file.h>
#include <vfs/dir.h>
#include <vfs/mount.h>

int vfs_init();

int vfs_mount(char *device, char *path, char *fs, char *flags);
int vfs_umount(char *device_or_path);
int vfs_stat(char *path, struct stat_t *stat);

dir_t *vfs_opendir(char *path);
int vfs_readdir(dir_t *dir, struct dirent_t *dirent);
void vfs_closedir(dir_t *dir);


file_t *vfs_open(char *path, char *flags);
int vfs_read(file_t *fid, char *buf, int size);
int vfs_write(file_t *fid, char *buf, int size);
void vfs_close(file_t *fid);


#endif
